﻿//Copyright 1997-2009 Syrinx Development, Inc.
//This file is part of the Syrinx Web Application Framework (SWAF).
// == BEGIN LICENSE ==
//
// Licensed under the terms of any of the following licenses at your
// choice:
//
//  - GNU General Public License Version 3 or later (the "GPL")
//    http://www.gnu.org/licenses/gpl.html
//
//  - GNU Lesser General Public License Version 3 or later (the "LGPL")
//    http://www.gnu.org/licenses/lgpl.html
//
//  - Mozilla Public License Version 1.1 or later (the "MPL")
//    http://www.mozilla.org/MPL/MPL-1.1.html
//
// == END LICENSE ==
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;

using Swaf;
using Swaf.Gui;

using Swaf.BizObj;
using Swaf.Container;
using Swaf.Security;

namespace eCom.Gui
{
	public class ProductSearchResultsBizProc : BaseBusinessProcess
	{
		public ProductSearchResultsBizProc(ActiveBizProc procState) : base(procState) {
			setupNewSearch(true);
		}

		protected override void setupRuleNames()
		{
			base.m_getBizObjListRule = "searchCompanyProductsWithParent";
		}
		
		public override Privileges CurrentEditPrivilege
		{
			get { return Privileges.ReadOnly; }
		}

		protected override bool shouldCallGetBizObjDetailsRule(object[] ruleParams)
		{
			if (CurrentBizObj == null || Cmn.IsEmpty(CurrentBizObj.get("keyword")))
				return false;
			return true;
		}

		protected override object[] getBizObjListRuleParameters(object parentId, IBizObj filterSort)
		{
			return new object[] { parentId, CurrentBizObj.get("keyword") };
		}

		protected override string BizObjTypeName { get { return "ArticleKeyword"; } }

		protected void setupNewSearch(bool force)
		{
			if (force || State.InProgressAddBizObj == null)
			{
				State.InProgressAddBizObj = createNewBizObj();
				string initSearch = m_procState.get("keyword") as string;
				if (!Cmn.IsEmpty(initSearch))
				{
					CurrentBizObj.put("keyword", initSearch);
					updateBizObj(CurrentBizObj);
				}

			}
		}
	}
}
